home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / other / python-1.52 / lib / python1.5 / bisect.py < prev    next >
Text File  |  1999-06-14  |  480b  |  26 lines

  1. # Bisection algorithms
  2.  
  3.  
  4. # Insert item x in list a, and keep it sorted assuming a is sorted
  5.  
  6. def insort(a, x, lo=0, hi=None):
  7.     if hi is None:
  8.         hi = len(a)
  9.     while lo < hi:
  10.         mid = (lo+hi)/2
  11.         if x < a[mid]: hi = mid
  12.         else: lo = mid+1
  13.     a.insert(lo, x)
  14.  
  15.  
  16. # Find the index where to insert item x in list a, assuming a is sorted
  17.  
  18. def bisect(a, x, lo=0, hi=None):
  19.     if hi is None:
  20.         hi = len(a)
  21.     while lo < hi:
  22.         mid = (lo+hi)/2
  23.         if x < a[mid]: hi = mid
  24.         else: lo = mid+1
  25.     return lo
  26.